When the project was finished we have managed to produce a substantial rules file which contain:
\begin{itemize}
 \item All ingredients that can be found in the database, plus some more.
 \item Top 150 most common regular nouns.
 \item All(?) irregular nouns.
 \item Top 300 most common verbs.
 \item A few common words from other categories (prepositions, articles etc).
 \item Quite a few grammar rules.
\end{itemize}

The grammar rules interpret sentences like:
\begin{itemize}
 \item I like banana (includes banana).
 \item I would like a meal containing butter (includes butter).
 \item No milk. (Excludes milk).
 \item I would like a meal with butter but with no milk (includes butter, excludes milk).
 \item I do not dislike butter (double negation, will include butter).
 \item I do not not like butter (double negation again).
 \item I am lactose intolerant / I have lactose intolerance (excludes milk).
 \item I am allergic to butter
\end{itemize}

It does \textit{not} understand sentences like:
\begin{itemize}
 \item I do not not not like butter (three or more negations since recursion hasn't been implemented in the semantics).
 \item All sentences containing words not listed in the lexicon (will fallback to keyword search).
 \item All sentences with no matching grammars (will fallback to keyword search).
 \item All sentences with invalid semantic interpretation (the program will crash!). This should never happen.
\end{itemize}

If the program is given a sentence like ``I want milk and no milk`` with conflicting data, the program will choose either to include or exclude the ingredient. The grammar based parser use the last seen instance of the conflicting ingredient (in this case it will exclude) while the keyword based parser always chooses to include the ingredient (ideally both parsers should give an error message).

An example run of the system could be:

\begin{verbatim}
What can I do for you?

I have a lot of butter, can you help me find a recipe?

I found 3 meals with butter.

cheesecake
ginger cookies
meatballs

Would you like to narrow your request?

I would like some milk and meat with that.

I found 1 meal with butter, milk and meat.

meatballs

Is there anything else you would like?

no

Ok! Goodbye!
Mealname:  meatballs    Time to prepare   60

Ingredients     Amount          Unit

beef            2               lb
butter          4               t
crumbs          2               c
egg             3               ea
flour           3               t
meat            1               t
milk            1               c
minced parsley  2               t
nutmeg          1               t
onion           1               c
paprika         1               t
pepper          1               t
sour cream      1               c
water           1               c

Way to cook: 

...
\end{verbatim}
